//
//  HRRepository.swift
//  APIHeartRate_Example
//
//  Created by Tek on 2023/1/5.
//  Copyright © 2023 CocoaPods. All rights reserved.
//

import Foundation

protocol HRRepository {
    func startScan(timeOut: Double)
    func getConnectedDevice(uuid:[UUID]) -> [BleDicoveryDevice]
    func connectBluetooth(device: BleDicoveryDevice)
    func connectDeviceBy(deviceId: String)
    func disconnectDevice()
    func registerBleListener(listener: APIHeartRateObserver)
    func unregisterBleListener(listener: APIHeartRateObserver)
    func getDeviceBattery()
    func getDeviceManufacturer()
    func getDeviceModelNum()
    func getDeviceHardware()
    func getDeviceFirmware()
    func getDeviceSoftware()
    func getDeviceSystemID()
    func setDeviceThreshold(min: UInt8, max: UInt8)
    func getDeviceSerial()
    func getDeviceStepFrequency()
    func getRealTimeOxygen()
    func resetFactory()
    func getHearRate()
    func syncTime()
    func readCharValue(charUUID: String)
    func setCharNotify(charUUID: String, enabled: Bool)
    func writeChar(charUUID: String, data:Data)
    func startOTAWith(file: Data)
    func queryBatteryStatus()
    func queryDeviceMode()
    func queryHeartRateMode()
    func requestCurrentTime()
    func keepSportAlive()
    func qureySportModeDetail()
    func setDoNotDisturbTime(enabled: Bool, startHour: UInt8, startMin: UInt8, endHour: UInt8, endMin: UInt8)
    func forseSleepOut()
    func lightSwitch(on: Bool)
    func dynamicHeartRate(on: Bool)
    func gymnasticMode(on: Bool)
    func enableRawDataLog(on: Bool)
    func queryDeviceInformation()
    func switchDeviceMode(mode: DeviceMode, isReal: Bool)
    func switchScenario(type: ScenarioType)
    func queryCursorInfo()
}
